<?php
require_once('cliente/dao_cliente.php');
require_once('guia/dao_guia.php');
class ci_seleccionar_cliente extends toba_ci
{

	protected $s__seleccion;
	protected $s__datos_filtro;
	protected $s__modificar=false;


	//-----------------------------------------------------------------------------------
	//---- Configuraciones --------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	/*function conf()
	{
	}*/
	
	function limpiar()
	{
		unset($this->s__seleccion);
		unset($this->s__datos_filtro);
	}


	//-----------------------------------------------------------------------------------
	//---- Eventos ----------------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function evt__guardar()
	{
		try{
			$this->cn()->guardar();
			toba::notificacion()->agregar("Los datos del cliente se han guardado correctamente",'info');
			$this->set_pantalla('pant_inicial');
		}catch (toba_error_db $error) {
			$sql_state = $error->get_sqlstate();
			if ($sql_state == 'db_23505') { 
				toba::notificacion()->agregar("El cliente que desea ingresar ya existe",'info');
			}else{
				throw $error;
			}
		}
	}
	
	function evt__cancelar()
	{    
		if ($this->cn()->hay_cursor_cliente() ) { 
			
			$this->cn()->resetear_cursor_cliente();
		}
			
		$this->set_pantalla('pant_inicial');        
	}
		
	function evt__nuevo()
	{
		$this->set_pantalla('pant_edicion');
	}
	
		
	function evt__volver()
	{    
		if ($this->cn()->hay_cursor_cliente() ) { 
			
			$this->cn()->resetear_cursor_cliente();
		}
			
		$this->set_pantalla('pant_inicial');        
	}

	//-----------------------------------------------------------------------------------
	//---- filtro_cliente ---------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function conf__filtro_cliente(toba_ei_filtro $filtro)
	{
		if(isset($this->s__datos_filtro)){
			$filtro->set_datos($this->s__datos_filtro);
			$this->s__where=$filtro->get_sql_where();
		}
	}
	
	function evt__filtro_cliente__filtrar($datos)
	{
		$this->s__datos_filtro = $datos;
	}

	function evt__filtro_cliente__cancelar()
	{
		$this->limpiar();
	}

	//-----------------------------------------------------------------------------------
	//---- cuadro_cliente ---------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function conf__cuadro_cliente(toba_ei_cuadro $cuadro)
	{
		$this->dep('cuadro_cliente')->desactivar_modo_clave_segura();
		if(isset($this->s__datos_filtro))
		{
			$datos=dao_cliente::get_listado_clientes($this->s__where);
			//ei_arbol($datos);
			
		}else{
			$datos=dao_cliente::get_listado_clientes();            
		}
		$cuadro->set_datos($datos);
		
	}
	
	function evt__cuadro_cliente__seleccion($seleccion)
	{
		    
		$this->cn()->resetear();
		$this->cn()->cargar($seleccion);
		$id_memoria=$this->cn()->traer_id_memoria_cliente($seleccion);
		//ei_arbol($seleccion);
		//ei_arbol($id_memoria); 
		$this->cn()->set_cursor_cliente($id_memoria[0]);
		$this->set_pantalla('ci_guia - ci_edicion - form_guia_datos_cliente');
	}
	
	function evt__cuadro_cliente__eliminar($seleccion)
	{
		$this->cn()->cargar($seleccion);
		$id_memoria=$this->cn()->traer_id_memoria_cliente($seleccion);
		$this->cn()->eliminar_cliente($id_memoria[0]);
		try{
			$this->cn()->guardar();
		} catch( toba_error_db $error){
			$sql_state= $error->get_sqlstate();
			if($sql_state=='db_23503'){
				toba::notificacion()->agregar("No se puede eliminar el registro actual porque está asociado a otra tabla",'info');
				$this->cn()->resetear();
			}else{
				throw $error;
				}
			}
		}

	
	
	//-----------------------------------------------------------------------------------
	//---- formulario_cliente-------------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function conf__form_cliente(toba_ei_formulario $form)
	{
		if($this->cn()->hay_cursor_cliente()){
			$datos=$this->cn()->get_cliente();
			$form->set_datos($datos);
			//ei_arbol($datos);
			//$this->dependencia('formulario')->ef('tipo_cliente')->set_solo_lectura(true)
		}
	
	} 
	
	function evt__form_cliente__modificacion($datos)
	{
		//if($this->cn()->hay_cursor_cliente()){
			$this->cn()->set_cliente($datos);
		//}else{		
		//	$this->cn()->agregar_cliente($datos);
		//}
	}

	//-----------------------------------------------------------------------------------
	//---- formulario_cliente-telefono-------------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function conf__form_cliente_tel(toba_ei_formulario $form)
	{
			$datos=$this->cn()->get_cliente_tel();
			$form->set_datos($datos);
			//$this->dependencia('formulario')->ef('tipo_cliente')->set_solo_lectura(true);			
	}
	
	function evt__form_cliente_tel__modificacion($datos)
	{
		$this->cn()->procesar_cliente_tel($datos);		
	}

}
?>
